The present invention relates to digital communications networks, and more particularly, to temporal coordination of when data is exchanged over the network and when recipients execute commands sent over the network.
Factories are automated by controllers that are programmed, or configured, to operate specific machines or devices. These controllers may be general purpose, such as computers, numerical controls or programmable controllers; or they may be special purpose controllers, such as robot controllers, weld controllers or motor drives.
Each controller connects to the various sensing devices and operating devices on the machinery which it controls and it automates the operation of that machinery by inputting data from the sensing devices and outputting the appropriate data to the operating devices. This exchange of input and output ("I/O") data between the controller and the .devices on the controlled machinery is often accomplished by direct connections between ports on the controller and each separate I/O device. However, when I/O devices are physically spread out over a large area, the wiring costs associated with such separate connections can become excessive.
One way to reduce wiring in such applications is to multiplex I/O data through a serial communications link. Such serial I/O links are commonly used to connect the centrally located controller to separate remote racks, or chassis, that are positioned adjacent to the I/O devices. Such "remote I/O systems" are disclosed, for example, in U.S. Pat. Nos. 4,404,651; 4,413,319; 4,809,217 and 4,750,150, where the controller carries out a continuous high speed scan of the I/O) data associated with each remote rack and that data is conveyed through the serial communications link. It can be appreciated that such serial I/O links must promptly and reliably convey the I/O data, since that data is directly controlling operating devices on a machine that is operating in real time.
While a single controller may automate a machine, or a small group of machines, such "islands of automation" must be connected together to truly automate an entire factory. These latter connections are provided by industrial local area networks that enable each controller to send messages to other similar controllers in the factory over serial data links. There are a large number of such "peer-to-peer" communications networks known in the art, some of which are developed by standards committees like IEEE 802.3, IEEE 802.4, IEEE 802.5 and MAP; and others are developed by manufacturers of the controller like those disclosed in U.S. Pat. Nos. 4,319,338; 4,667,323 and 4,747,100. It can be appreciated that the nature of the peer-to-peer data conveyed on local area networks connecting controllers is different than I/O data conveyed on serial I/O links.
A recent trend in industrial control is the increasing use of smaller controllers in so-called "distributed processing." For example, rather than a single large controller linked to a set of remote I/O racks, an alternative architecture is a set of linked small controllers positioned about the factory in place of each remote I/O rack. In a distributed system it may be necessary to coordinate the exchange of data so that a group of these smaller controllers that are associated with a section of the factory will act on data at the same time. It may also be important that data from sensors connected to different controllers be sent over the network at about the same time to provide a "snap shot" of the entire manufacturing process at a given point in time.
Some of the data being exchanged may not be so time critical that it needs to be sent over the network every time that the station at which the data is generated gets access to the network. Rather, the data should be sent once a second, for example. Although the processor module in the controller can regulate the transmission of this data, that burden may adversely affect the processor's ability to control the factory machinery. Therefore, it is desirable to utilize a separate mechanism to provide this regulation.
In addition, each processor on the network has an internal clock. Although these clocks are driven by a crystal controlled oscillator, eventually their time will drift with respect to each other and to the real time. If several processors are to take action simultaneously based on the time of their clocks, the drift in time results in a non-simultaneous action. Therefore, it is desirable to provide a network communication mechanism by which the internal clocks of the processors can be synchronized periodically.